// Generated from antlr/tscn.g4 by ANTLR 4.9.0-SNAPSHOT


import { ATN } from "antlr4ts/atn/ATN";
import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer";
import { CharStream } from "antlr4ts/CharStream";
import { Lexer } from "antlr4ts/Lexer";
import { LexerATNSimulator } from "antlr4ts/atn/LexerATNSimulator";
import { NotNull } from "antlr4ts/Decorators";
import { Override } from "antlr4ts/Decorators";
import { RuleContext } from "antlr4ts/RuleContext";
import { Vocabulary } from "antlr4ts/Vocabulary";
import { VocabularyImpl } from "antlr4ts/VocabularyImpl";

import * as Utils from "antlr4ts/misc/Utils";


export class tscnLexer extends Lexer {
	public static readonly T__0 = 1;
	public static readonly T__1 = 2;
	public static readonly T__2 = 3;
	public static readonly T__3 = 4;
	public static readonly T__4 = 5;
	public static readonly T__5 = 6;
	public static readonly T__6 = 7;
	public static readonly T__7 = 8;
	public static readonly T__8 = 9;
	public static readonly T__9 = 10;
	public static readonly T__10 = 11;
	public static readonly T__11 = 12;
	public static readonly INT = 13;
	public static readonly DIGIT = 14;
	public static readonly ID = 15;
	public static readonly NameChar = 16;
	public static readonly NameStartChar = 17;
	public static readonly STRING_ = 18;
	public static readonly HEX = 19;
	public static readonly HEXNUM = 20;
	public static readonly BIN = 21;
	public static readonly BINNUM = 22;
	public static readonly FLOAT_ = 23;
	public static readonly SIGN = 24;
	public static readonly WS = 25;

	// tslint:disable:no-trailing-whitespace
	public static readonly channelNames: string[] = [
		"DEFAULT_TOKEN_CHANNEL", "HIDDEN",
	];

	// tslint:disable:no-trailing-whitespace
	public static readonly modeNames: string[] = [
		"DEFAULT_MODE",
	];

	public static readonly ruleNames: string[] = [
		"T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", 
		"T__9", "T__10", "T__11", "INT", "DIGIT", "ID", "NameChar", "NameStartChar", 
		"CHAR", "STRING_", "HEX", "HEXNUM", "BIN", "BINNUM", "FLOAT_", "SIGN", 
		"WS",
	];

	private static readonly _LITERAL_NAMES: Array<string | undefined> = [
		undefined, "'['", "']'", "'='", "'('", "','", "')'", "'{'", "'}'", "':'", 
		"'true'", "'false'", "'null'",
	];
	private static readonly _SYMBOLIC_NAMES: Array<string | undefined> = [
		undefined, undefined, undefined, undefined, undefined, undefined, undefined, 
		undefined, undefined, undefined, undefined, undefined, undefined, "INT", 
		"DIGIT", "ID", "NameChar", "NameStartChar", "STRING_", "HEX", "HEXNUM", 
		"BIN", "BINNUM", "FLOAT_", "SIGN", "WS",
	];
	public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(tscnLexer._LITERAL_NAMES, tscnLexer._SYMBOLIC_NAMES, []);

	// @Override
	// @NotNull
	public get vocabulary(): Vocabulary {
		return tscnLexer.VOCABULARY;
	}
	// tslint:enable:no-trailing-whitespace


	constructor(input: CharStream) {
		super(input);
		this._interp = new LexerATNSimulator(tscnLexer._ATN, this);
	}

	// @Override
	public get grammarFileName(): string { return "tscn.g4"; }

	// @Override
	public get ruleNames(): string[] { return tscnLexer.ruleNames; }

	// @Override
	public get serializedATN(): string { return tscnLexer._serializedATN; }

	// @Override
	public get channelNames(): string[] { return tscnLexer.channelNames; }

	// @Override
	public get modeNames(): string[] { return tscnLexer.modeNames; }

	public static readonly _serializedATN: string =
		"\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02\x1B\xAB\b\x01" +
		"\x04\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06" +
		"\x04\x07\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r" +
		"\t\r\x04\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t" +
		"\x12\x04\x13\t\x13\x04\x14\t\x14\x04\x15\t\x15\x04\x16\t\x16\x04\x17\t" +
		"\x17\x04\x18\t\x18\x04\x19\t\x19\x04\x1A\t\x1A\x04\x1B\t\x1B\x03\x02\x03" +
		"\x02\x03\x03\x03\x03\x03\x04\x03\x04\x03\x05\x03\x05\x03\x06\x03\x06\x03" +
		"\x07\x03\x07\x03\b\x03\b\x03\t\x03\t\x03\n\x03\n\x03\v\x03\v\x03\v\x03" +
		"\v\x03\v\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\r\x03\r\x03\r\x03\r\x03" +
		"\r\x03\x0E\x05\x0E[\n\x0E\x03\x0E\x06\x0E^\n\x0E\r\x0E\x0E\x0E_\x03\x0F" +
		"\x03\x0F\x03\x10\x03\x10\x07\x10f\n\x10\f\x10\x0E\x10i\v\x10\x03\x11\x03" +
		"\x11\x05\x11m\n\x11\x03\x12\x03\x12\x03\x12\x05\x12r\n\x12\x03\x13\x03" +
		"\x13\x03\x14\x03\x14\x07\x14x\n\x14\f\x14\x0E\x14{\v\x14\x03\x14\x03\x14" +
		"\x03\x15\x05\x15\x80\n\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03" +
		"\x15\x07\x15\x88\n\x15\f\x15\x0E\x15\x8B\v\x15\x03\x16\x03\x16\x03\x17" +
		"\x05\x17\x90\n\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x07" +
		"\x17\x98\n\x17\f\x17\x0E\x17\x9B\v\x17\x03\x18\x03\x18\x03\x19\x05\x19" +
		"\xA0\n\x19\x03\x19\x03\x19\x03\x19\x03\x19\x03\x1A\x03\x1A\x03\x1B\x03" +
		"\x1B\x03\x1B\x03\x1B\x02\x02\x02\x1C\x03\x02\x03\x05\x02\x04\x07\x02\x05" +
		"\t\x02\x06\v\x02\x07\r\x02\b\x0F\x02\t\x11\x02\n\x13\x02\v\x15\x02\f\x17" +
		"\x02\r\x19\x02\x0E\x1B\x02\x0F\x1D\x02\x10\x1F\x02\x11!\x02\x12#\x02\x13" +
		"%\x02\x02\'\x02\x14)\x02\x15+\x02\x16-\x02\x17/\x02\x181\x02\x193\x02" +
		"\x1A5\x02\x1B\x03\x02\b\x03\x022;\x04\x02C\\c|\x03\x02$$\x05\x022;CHc" +
		"h\x04\x02--//\x05\x02\v\f\x0F\x0F\"\"\x02\xB7\x02\x03\x03\x02\x02\x02" +
		"\x02\x05\x03\x02\x02\x02\x02\x07\x03\x02\x02\x02\x02\t\x03\x02\x02\x02" +
		"\x02\v\x03\x02\x02\x02\x02\r\x03\x02\x02\x02\x02\x0F\x03\x02\x02\x02\x02" +
		"\x11\x03\x02\x02\x02\x02\x13\x03\x02\x02\x02\x02\x15\x03\x02\x02\x02\x02" +
		"\x17\x03\x02\x02\x02\x02\x19\x03\x02\x02\x02\x02\x1B\x03\x02\x02\x02\x02" +
		"\x1D\x03\x02\x02\x02\x02\x1F\x03\x02\x02\x02\x02!\x03\x02\x02\x02\x02" +
		"#\x03\x02\x02\x02\x02\'\x03\x02\x02\x02\x02)\x03\x02\x02\x02\x02+\x03" +
		"\x02\x02\x02\x02-\x03\x02\x02\x02\x02/\x03\x02\x02\x02\x021\x03\x02\x02" +
		"\x02\x023\x03\x02\x02\x02\x025\x03\x02\x02\x02\x037\x03\x02\x02\x02\x05" +
		"9\x03\x02\x02\x02\x07;\x03\x02\x02\x02\t=\x03\x02\x02\x02\v?\x03\x02\x02" +
		"\x02\rA\x03\x02\x02\x02\x0FC\x03\x02\x02\x02\x11E\x03\x02\x02\x02\x13" +
		"G\x03\x02\x02\x02\x15I\x03\x02\x02\x02\x17N\x03\x02\x02\x02\x19T\x03\x02" +
		"\x02\x02\x1BZ\x03\x02\x02\x02\x1Da\x03\x02\x02\x02\x1Fc\x03\x02\x02\x02" +
		"!l\x03\x02\x02\x02#q\x03\x02\x02\x02%s\x03\x02\x02\x02\'u\x03\x02\x02" +
		"\x02)\x7F\x03\x02\x02\x02+\x8C\x03\x02\x02\x02-\x8F\x03\x02\x02\x02/\x9C" +
		"\x03\x02\x02\x021\x9F\x03\x02\x02\x023\xA5\x03\x02\x02\x025\xA7\x03\x02" +
		"\x02\x0278\x07]\x02\x028\x04\x03\x02\x02\x029:\x07_\x02\x02:\x06\x03\x02" +
		"\x02\x02;<\x07?\x02\x02<\b\x03\x02\x02\x02=>\x07*\x02\x02>\n\x03\x02\x02" +
		"\x02?@\x07.\x02\x02@\f\x03\x02\x02\x02AB\x07+\x02\x02B\x0E\x03\x02\x02" +
		"\x02CD\x07}\x02\x02D\x10\x03\x02\x02\x02EF\x07\x7F\x02\x02F\x12\x03\x02" +
		"\x02\x02GH\x07<\x02\x02H\x14\x03\x02\x02\x02IJ\x07v\x02\x02JK\x07t\x02" +
		"\x02KL\x07w\x02\x02LM\x07g\x02\x02M\x16\x03\x02\x02\x02NO\x07h\x02\x02" +
		"OP\x07c\x02\x02PQ\x07n\x02\x02QR\x07u\x02\x02RS\x07g\x02\x02S\x18\x03" +
		"\x02\x02\x02TU\x07p\x02\x02UV\x07w\x02\x02VW\x07n\x02\x02WX\x07n\x02\x02" +
		"X\x1A\x03\x02\x02\x02Y[\x053\x1A\x02ZY\x03\x02\x02\x02Z[\x03\x02\x02\x02" +
		"[]\x03\x02\x02\x02\\^\x05\x1D\x0F\x02]\\\x03\x02\x02\x02^_\x03\x02\x02" +
		"\x02_]\x03\x02\x02\x02_`\x03\x02\x02\x02`\x1C\x03\x02\x02\x02ab\t\x02" +
		"\x02\x02b\x1E\x03\x02\x02\x02cg\x05#\x12\x02df\x05!\x11\x02ed\x03\x02" +
		"\x02\x02fi\x03\x02\x02\x02ge\x03\x02\x02\x02gh\x03\x02\x02\x02h \x03\x02" +
		"\x02\x02ig\x03\x02\x02\x02jm\x05#\x12\x02km\x071\x02\x02lj\x03\x02\x02" +
		"\x02lk\x03\x02\x02\x02m\"\x03\x02\x02\x02nr\x05%\x13\x02or\x07a\x02\x02" +
		"pr\x05\x1D\x0F\x02qn\x03\x02\x02\x02qo\x03\x02\x02\x02qp\x03\x02\x02\x02" +
		"r$\x03\x02\x02\x02st\t\x03\x02\x02t&\x03\x02\x02\x02uy\x07$\x02\x02vx" +
		"\n\x04\x02\x02wv\x03\x02\x02\x02x{\x03\x02\x02\x02yw\x03\x02\x02\x02y" +
		"z\x03\x02\x02\x02z|\x03\x02\x02\x02{y\x03\x02\x02\x02|}\x07$\x02\x02}" +
		"(\x03\x02\x02\x02~\x80\x07/\x02\x02\x7F~\x03\x02\x02\x02\x7F\x80\x03\x02" +
		"\x02\x02\x80\x81\x03\x02\x02\x02\x81\x82\x072\x02\x02\x82\x83\x07z\x02" +
		"\x02\x83\x84\x03\x02\x02\x02\x84\x89\x05+\x16\x02\x85\x88\x05+\x16\x02" +
		"\x86\x88\x07a\x02\x02\x87\x85\x03\x02\x02\x02\x87\x86\x03\x02\x02\x02" +
		"\x88\x8B\x03\x02\x02\x02\x89\x87\x03\x02\x02\x02\x89\x8A\x03\x02\x02\x02" +
		"\x8A*\x03\x02\x02\x02\x8B\x89\x03\x02\x02\x02\x8C\x8D\t\x05\x02\x02\x8D" +
		",\x03\x02\x02\x02\x8E\x90\x07/\x02\x02\x8F\x8E\x03\x02\x02\x02\x8F\x90" +
		"\x03\x02\x02\x02\x90\x91\x03\x02\x02\x02\x91\x92\x072\x02\x02\x92\x93" +
		"\x07d\x02\x02\x93\x94\x03\x02\x02\x02\x94\x99\x05/\x18\x02\x95\x98\x05" +
		"/\x18\x02\x96\x98\x07a\x02\x02\x97\x95\x03\x02\x02\x02\x97\x96\x03\x02" +
		"\x02\x02\x98\x9B\x03\x02\x02\x02\x99\x97\x03\x02\x02\x02\x99\x9A\x03\x02" +
		"\x02\x02\x9A.\x03\x02\x02\x02\x9B\x99\x03\x02\x02\x02\x9C\x9D\x0423\x02" +
		"\x9D0\x03\x02\x02\x02\x9E\xA0\x053\x1A\x02\x9F\x9E\x03\x02\x02\x02\x9F" +
		"\xA0\x03\x02\x02\x02\xA0\xA1\x03\x02\x02\x02\xA1\xA2\x05\x1B\x0E\x02\xA2" +
		"\xA3\x070\x02\x02\xA3\xA4\x05\x1B\x0E\x02\xA42\x03\x02\x02\x02\xA5\xA6" +
		"\t\x06\x02\x02\xA64\x03\x02\x02\x02\xA7\xA8\t\x07\x02\x02\xA8\xA9\x03" +
		"\x02\x02\x02\xA9\xAA\b\x1B\x02\x02\xAA6\x03\x02\x02\x02\x10\x02Z_glqy" +
		"\x7F\x87\x89\x8F\x97\x99\x9F\x03\b\x02\x02";
	public static __ATN: ATN;
	public static get _ATN(): ATN {
		if (!tscnLexer.__ATN) {
			tscnLexer.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(tscnLexer._serializedATN));
		}

		return tscnLexer.__ATN;
	}

}

